/** Keriosity, ESIR 2
 * 	MapListener: classe permettant d'etre a l'ecoute du toucher de l'utilisateur sur la carte
 *	@author: GOUYET Brett
 *	@date: 14/05/2012
 */


package keriosity.map;

import java.util.Calendar;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import android.content.Context;
import android.graphics.Canvas;
import android.view.MotionEvent;


/** Joue le role du listerner sur la carte **/
public class MapListener extends org.osmdroid.views.overlay.Overlay {

	protected long _timeClick; //attribut utilise dans onTouchEvent
	protected IMap _map;
	
	
	/** CONSTRUCTEUR **/
    public MapListener(Context context, IMap map) {
    	super(context);
    	_timeClick = 0;
    	_map = map;
    }

    
    /** Methode gerant le touche de l'utilisateur sur la carte et ainsi la creation des points **/
    public boolean onTouchEvent(MotionEvent event, MapView mapView) {
       
    	switch (event.getAction()) { //on va gerer le temps de pression
            
    		case MotionEvent.ACTION_DOWN: { //lorsque l'on pose le doigt
    			_timeClick = Calendar.getInstance().getTimeInMillis(); //on recupere le temps
                break;
            }
    		
            case MotionEvent.ACTION_UP: { //lorsque l'on relache le doigt
            	
            	/** Generalement pour se deplacer sur la carte, le temps de pression varie de 300ms a 900ms
      	  		pour placer notre point on devra rester appuyer pendant 1,5 seconde */
            	if((Calendar.getInstance().getTimeInMillis() - _timeClick) > 1500){ //on est reste appuye pendant 1.5 seconde
            		
            		//on recupere les coordonnees GPS sur la carte et on cree le point
            		_map.setDestination((GeoPoint) mapView.getProjection().fromPixels(event.getX(), event.getY())); 
            		_map.createPointDestination(); //creation du point
               	}
            }              
        }	
        return false;
    }

    
    //Methode non utilisee 
	protected void draw(Canvas arg0, MapView arg1, boolean arg2) {}
}